﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace Controladora.Sistema
{
    public class CUGestionarUnidad
        {
        private static CUGestionarUnidad Instancia;
        public static CUGestionarUnidad ObtenerInstancia()
        {
            if (Instancia == null)
            {
                Instancia = new CUGestionarUnidad();
            }
            return Instancia;
        }

        private CUGestionarUnidad()
        {
            //Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
            //Modelo.Seguridad.CatalogoGrupos.ObtenerInstancia().ListarGrupos();
            //Servicios.Conexion.ObtenerInstancia().Desconectar();
        }

        public ReadOnlyCollection<Entidades.Sistema.Unidad> ConsultarUnidadTT()
        {
            try
            {
                Servicios.Conexion.ObtenerInstancia().Conectar("Sistema");
                ReadOnlyCollection<Entidades.Sistema.Unidad> ColUnidad = Modelo.Sistema.CatalogoUnidad.ObtenerInstancia().ListarUnidadTT();
                Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");
                return ColUnidad;
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally
            {
                Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");
            }
        }

        public ReadOnlyCollection<Entidades.Sistema.Unidad> ConsultarUnidad(int cod_unidad)
        {
            try
            {
                Servicios.Conexion.ObtenerInstancia().Conectar("Sistema");
                ReadOnlyCollection<Entidades.Sistema.Unidad> ColUnidad = Modelo.Sistema.CatalogoUnidad.ObtenerInstancia().ListarUnidad();
                Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");
                return ColUnidad;
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally
            {
                Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");
            }
        }




        public bool AgregarUnidad(Entidades.Sistema.Unidad oUnidad)
        {
            if (Modelo.Sistema.CatalogoUnidad.ObtenerInstancia().ValidarExistencia(oUnidad) == true)
            {
                Servicios.Conexion.ObtenerInstancia().Conectar("Sistema");
                bool res = Modelo.Sistema.CatalogoUnidad.ObtenerInstancia().AgregarUnidad(oUnidad);
                Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");
                return true;
            }
            else
            {
                return false;
            }
        }

        public bool EliminarUnidad(Entidades.Sistema.Unidad oUnidad)
        {
            Servicios.Conexion.ObtenerInstancia().Conectar("Sistema");
            bool res = Modelo.Sistema.CatalogoUnidad.ObtenerInstancia().EliminarUnidad(oUnidad);
            Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");
            return res;
        }

        public void ModificarUnidad(Entidades.Sistema.Unidad oUnidad)
        {
            try
            {
                Servicios.Conexion.ObtenerInstancia().Conectar("Sistema");
                Modelo.Sistema.CatalogoUnidad.ObtenerInstancia().ModificarUnidad(oUnidad);
            }
            finally
            {
                Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");
            }
        }

    }
}
